const fs = require('fs');
const path = require('path');
//封装写入函数
function writeFile(filePath,content){
    return new Promise((resolve,reject)=>{
        fs.writeFile(filePath,content,(err)=>{
            if(err){
                reject(err)
            }else{
                resolve()
            }
        })
    })
}
//封装读取函数
function readFile(filePath){
    return new Promise((resolve,reject)=>{
        fs.readFile(filePath,'utf-8',(err,data)=>{
            if(err){
                reject(err)
            }else{
                resolve(data)
            }
        })
    })
}
const path1 = path.join(__dirname,'1.txt')
const path2 = path.join(__dirname,'2.txt')
const path3 = path.join(__dirname,'3.txt')
let content = ''

//方法一 promise

// writeFile(path1,'我是恁爹')
// .then(()=>{
//     return writeFile(path2,'你知道吗')
// })
// .then(()=>{
//     return readFile(path1)
// })
// .then((data)=>{
//     content += data;
//     return readFile(path2)
// })
// .then((data)=>{
//     content += '\n'+data
//     return writeFile(path3,content)
// })
// .then(()=>{
//     console.log('我才是恁爹')
// })
// .catch(()=>{
//     console.log('错了！！！')
// })


//方法二 promise.all

// Promise.all([writeFile(path1,'我是恁爹')],[writeFile(path2,'你知道吗')])
// .then((data)=>{
//     return Promise.all([readFile(path1),readFile(path2)])
// })
// .then((data)=>{
//     return writeFile(path3,`${data[0]}\n${data[1]}`)
// })
// .then(()=>{
//     console.log('我才是恁爹')
// })
// .catch((err)=>{
//     console.log('错了！！！')
// })


//方法三 async(await)

async function main(){
    try {
        await Promise.all([writeFile(path1,'我是恁爹')],[writeFile(path2,'你知道吗')])
        const data = await Promise.all([readFile(path1),readFile(path2)]);
        await writeFile(path3,`${data[0]}\n${data[1]}`);
        console.log('我才是恁爹')
    } catch (error) {
        console.log('错了！！！')
    }
}
main()

